package com.yuyou.tas.admin.vo.req;

import com.yuyou.tas.service.api.admin.dto.SimpleSubSecReqVo;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author 
 */
public class AuthOrganPerson implements Serializable {
    /**
     * 0：试用期
     1：合约期
     2：终止
     */
    @NotNull(message="合作状态 不能为空")
    @ApiModelProperty(value = "合作状态", required = true)
    private Integer status;

    /**
     * 账号有效期开始
     */
    @NotNull(message="账号有效期开始 不能为空")
    @ApiModelProperty(value = "账号有效期开始", required = true)
    private Date userTimeStart;

    /**
     * 账号有效期结束
     */
    @NotNull(message="账号有效期结束 不能为空")
    @ApiModelProperty(value = "账号有效期结束", required = true)
    private Date userTimeEnd;

    /**
     * 可免费增加账号
     */
    @NotNull(message="可免费增加账号 不能为空")
    @ApiModelProperty(value = "可免费增加账号", required = true)
    private Integer freeAccount;

    /**
     * 个人名字
     */
    @NotBlank(message="type 个人名字")
    @Length(max = 40 , message = "个人名字不能超过40个字")
    @ApiModelProperty(value = "个人名字", required = true)
    private String perName;

    /**
     * 个人手机号码
     */
    @NotBlank(message="个人手机号码")
    @ApiModelProperty(value = "个人手机号码", required = true)
    private String perPhone;

    /**
     * 0:个性化,1:标准
     **/
    @NotNull(message="机构合作类型不能为空")
    @ApiModelProperty(value = "0:个性化,1:标准", required = true)
    private Integer cooperType;

    @NotEmpty(message = "至少选择一个角色")
    @ApiModelProperty(value = "角色id，用逗号隔开", required = true)
    private List<String> roles;

    @NotEmpty(message = "讲义和课件权限至少选择一个")
    @ApiModelProperty(value = "1、课件、2、讲义 的权限，多个用逗号隔开")
    private List<Integer> opreaTypes;

    @ApiModelProperty(value = "科目年级权限JSON")
    private String subSec;

    private List<SimpleSubSecReqVo> sss;

    private static final long serialVersionUID = 1L;

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getUserTimeStart() {
        return userTimeStart;
    }

    public void setUserTimeStart(Date userTimeStart) {
        this.userTimeStart = userTimeStart;
    }

    public Date getUserTimeEnd() {
        return userTimeEnd;
    }

    public void setUserTimeEnd(Date userTimeEnd) {
        this.userTimeEnd = userTimeEnd;
    }

    public Integer getFreeAccount() {
        return freeAccount;
    }

    public void setFreeAccount(Integer freeAccount) {
        this.freeAccount = freeAccount;
    }

    public String getPerName() {
        return perName;
    }

    public void setPerName(String perName) {
        this.perName = perName;
    }

    public String getPerPhone() {
        return perPhone;
    }

    public void setPerPhone(String perPhone) {
        this.perPhone = perPhone;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Integer getCooperType() {
        return cooperType;
    }

    public void setCooperType(Integer cooperType) {
        this.cooperType = cooperType;
    }

    public List<String> getRoles() {
        return roles;
    }

    public void setRoles(List<String> roles) {
        this.roles = roles;
    }

    public List<Integer> getOpreaTypes() {
        return opreaTypes;
    }

    public void setOpreaTypes(List<Integer> opreaTypes) {
        this.opreaTypes = opreaTypes;
    }

    public String getSubSec() {
        return subSec;
    }

    public void setSubSec(String subSec) {
        this.subSec = subSec;
    }

    public List<SimpleSubSecReqVo> getSss() {
        return sss;
    }

    public void setSss(List<SimpleSubSecReqVo> sss) {
        this.sss = sss;
    }
}